0 Prolog
↳1 PrologToDTProblemTransformerProof (⇒, 183 ms)
↳2 TRIPLES
↳3 TriplesToPiDPProof (⇒, 173 ms)
↳4 PiDP
↳5 DependencyGraphProof (⇔, 0 ms)
↳6 AND
↳7 PiDP
↳8 PiDPToQDPProof (⇒, 0 ms)
↳9 QDP
↳10 QDPSizeChangeProof (⇔, 0 ms)
↳11 YES
↳12 PiDP
↳13 PiDPToQDPProof (⇒, 0 ms)
↳14 QDP
↳15 QDPSizeChangeProof (⇔, 0 ms)
↳16 YES
ACKERMANA_IN_GGA(s(s(X1)), 0, X2) → U9_GGA(X1, X2, ackermanB_in_ga(X1, X3))
ACKERMANA_IN_GGA(s(s(X1)), 0, X2) → ACKERMANB_IN_GA(X1, X3)
ACKERMANB_IN_GA(X1, X2) → U1_GA(X1, X2, ackermanC_in_ga(X1, X2))
ACKERMANB_IN_GA(X1, X2) → ACKERMANC_IN_GA(X1, X2)
ACKERMANC_IN_GA(s(X1), X2) → U2_GA(X1, X2, ackermanB_in_ga(X1, X3))
ACKERMANC_IN_GA(s(X1), X2) → ACKERMANB_IN_GA(X1, X3)
ACKERMANC_IN_GA(s(X1), X2) → U3_GA(X1, X2, ackermancB_in_ga(X1, X3))
U3_GA(X1, X2, ackermancB_out_ga(X1, X3)) → U4_GA(X1, X2, ackermanD_in_gga(X1, X3, X2))
U3_GA(X1, X2, ackermancB_out_ga(X1, X3)) → ACKERMAND_IN_GGA(X1, X3, X2)
ACKERMAND_IN_GGA(s(X1), 0, X2) → U5_GGA(X1, X2, ackermanC_in_ga(X1, X2))
ACKERMAND_IN_GGA(s(X1), 0, X2) → ACKERMANC_IN_GA(X1, X2)
ACKERMAND_IN_GGA(s(X1), s(X2), X3) → U6_GGA(X1, X2, X3, ackermanD_in_gga(s(X1), X2, X4))
ACKERMAND_IN_GGA(s(X1), s(X2), X3) → ACKERMAND_IN_GGA(s(X1), X2, X4)
ACKERMAND_IN_GGA(s(X1), s(X2), X3) → U7_GGA(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U7_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U8_GGA(X1, X2, X3, ackermanD_in_gga(X1, X4, X3))
U7_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → ACKERMAND_IN_GGA(X1, X4, X3)
ACKERMANA_IN_GGA(s(s(X1)), 0, X2) → U10_GGA(X1, X2, ackermancB_in_ga(X1, X3))
U10_GGA(X1, X2, ackermancB_out_ga(X1, X3)) → U11_GGA(X1, X2, ackermanA_in_gga(X1, X3, X2))
U10_GGA(X1, X2, ackermancB_out_ga(X1, X3)) → ACKERMANA_IN_GGA(X1, X3, X2)
ACKERMANA_IN_GGA(s(X1), s(0), X2) → U12_GGA(X1, X2, ackermanC_in_ga(X1, X3))
ACKERMANA_IN_GGA(s(X1), s(0), X2) → ACKERMANC_IN_GA(X1, X3)
ACKERMANA_IN_GGA(s(X1), s(0), X2) → U13_GGA(X1, X2, ackermancC_in_ga(X1, X3))
U13_GGA(X1, X2, ackermancC_out_ga(X1, X3)) → U14_GGA(X1, X2, ackermanA_in_gga(X1, X3, X2))
U13_GGA(X1, X2, ackermancC_out_ga(X1, X3)) → ACKERMANA_IN_GGA(X1, X3, X2)
ACKERMANA_IN_GGA(s(X1), s(s(X2)), X3) → U15_GGA(X1, X2, X3, ackermanD_in_gga(s(X1), X2, X4))
ACKERMANA_IN_GGA(s(X1), s(s(X2)), X3) → ACKERMAND_IN_GGA(s(X1), X2, X4)
ACKERMANA_IN_GGA(s(X1), s(s(X2)), X3) → U16_GGA(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U16_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U17_GGA(X1, X2, X3, ackermanD_in_gga(X1, X4, X5))
U16_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → ACKERMAND_IN_GGA(X1, X4, X5)
U16_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U18_GGA(X1, X2, X3, ackermancD_in_gga(X1, X4, X5))
U18_GGA(X1, X2, X3, ackermancD_out_gga(X1, X4, X5)) → U19_GGA(X1, X2, X3, ackermanA_in_gga(X1, X5, X3))
U18_GGA(X1, X2, X3, ackermancD_out_gga(X1, X4, X5)) → ACKERMANA_IN_GGA(X1, X5, X3)
ackermancB_in_ga(X1, X2) → U28_ga(X1, X2, ackermancC_in_ga(X1, X2))
ackermancC_in_ga(0, s(s(0))) → ackermancC_out_ga(0, s(s(0)))
ackermancC_in_ga(s(X1), X2) → U29_ga(X1, X2, ackermancB_in_ga(X1, X3))
U29_ga(X1, X2, ackermancB_out_ga(X1, X3)) → U30_ga(X1, X2, ackermancD_in_gga(X1, X3, X2))
ackermancD_in_gga(0, X1, s(X1)) → ackermancD_out_gga(0, X1, s(X1))
ackermancD_in_gga(s(X1), 0, X2) → U31_gga(X1, X2, ackermancC_in_ga(X1, X2))
U31_gga(X1, X2, ackermancC_out_ga(X1, X2)) → ackermancD_out_gga(s(X1), 0, X2)
ackermancD_in_gga(s(X1), s(X2), X3) → U32_gga(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U32_gga(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, X3, ackermancD_in_gga(X1, X4, X3))
U33_gga(X1, X2, X3, ackermancD_out_gga(X1, X4, X3)) → ackermancD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, X2, ackermancD_out_gga(X1, X3, X2)) → ackermancC_out_ga(s(X1), X2)
U28_ga(X1, X2, ackermancC_out_ga(X1, X2)) → ackermancB_out_ga(X1, X2)
Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES
ACKERMANA_IN_GGA(s(s(X1)), 0, X2) → U9_GGA(X1, X2, ackermanB_in_ga(X1, X3))
ACKERMANA_IN_GGA(s(s(X1)), 0, X2) → ACKERMANB_IN_GA(X1, X3)
ACKERMANB_IN_GA(X1, X2) → U1_GA(X1, X2, ackermanC_in_ga(X1, X2))
ACKERMANB_IN_GA(X1, X2) → ACKERMANC_IN_GA(X1, X2)
ACKERMANC_IN_GA(s(X1), X2) → U2_GA(X1, X2, ackermanB_in_ga(X1, X3))
ACKERMANC_IN_GA(s(X1), X2) → ACKERMANB_IN_GA(X1, X3)
ACKERMANC_IN_GA(s(X1), X2) → U3_GA(X1, X2, ackermancB_in_ga(X1, X3))
U3_GA(X1, X2, ackermancB_out_ga(X1, X3)) → U4_GA(X1, X2, ackermanD_in_gga(X1, X3, X2))
U3_GA(X1, X2, ackermancB_out_ga(X1, X3)) → ACKERMAND_IN_GGA(X1, X3, X2)
ACKERMAND_IN_GGA(s(X1), 0, X2) → U5_GGA(X1, X2, ackermanC_in_ga(X1, X2))
ACKERMAND_IN_GGA(s(X1), 0, X2) → ACKERMANC_IN_GA(X1, X2)
ACKERMAND_IN_GGA(s(X1), s(X2), X3) → U6_GGA(X1, X2, X3, ackermanD_in_gga(s(X1), X2, X4))
ACKERMAND_IN_GGA(s(X1), s(X2), X3) → ACKERMAND_IN_GGA(s(X1), X2, X4)
ACKERMAND_IN_GGA(s(X1), s(X2), X3) → U7_GGA(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U7_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U8_GGA(X1, X2, X3, ackermanD_in_gga(X1, X4, X3))
U7_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → ACKERMAND_IN_GGA(X1, X4, X3)
ACKERMANA_IN_GGA(s(s(X1)), 0, X2) → U10_GGA(X1, X2, ackermancB_in_ga(X1, X3))
U10_GGA(X1, X2, ackermancB_out_ga(X1, X3)) → U11_GGA(X1, X2, ackermanA_in_gga(X1, X3, X2))
U10_GGA(X1, X2, ackermancB_out_ga(X1, X3)) → ACKERMANA_IN_GGA(X1, X3, X2)
ACKERMANA_IN_GGA(s(X1), s(0), X2) → U12_GGA(X1, X2, ackermanC_in_ga(X1, X3))
ACKERMANA_IN_GGA(s(X1), s(0), X2) → ACKERMANC_IN_GA(X1, X3)
ACKERMANA_IN_GGA(s(X1), s(0), X2) → U13_GGA(X1, X2, ackermancC_in_ga(X1, X3))
U13_GGA(X1, X2, ackermancC_out_ga(X1, X3)) → U14_GGA(X1, X2, ackermanA_in_gga(X1, X3, X2))
U13_GGA(X1, X2, ackermancC_out_ga(X1, X3)) → ACKERMANA_IN_GGA(X1, X3, X2)
ACKERMANA_IN_GGA(s(X1), s(s(X2)), X3) → U15_GGA(X1, X2, X3, ackermanD_in_gga(s(X1), X2, X4))
ACKERMANA_IN_GGA(s(X1), s(s(X2)), X3) → ACKERMAND_IN_GGA(s(X1), X2, X4)
ACKERMANA_IN_GGA(s(X1), s(s(X2)), X3) → U16_GGA(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U16_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U17_GGA(X1, X2, X3, ackermanD_in_gga(X1, X4, X5))
U16_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → ACKERMAND_IN_GGA(X1, X4, X5)
U16_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U18_GGA(X1, X2, X3, ackermancD_in_gga(X1, X4, X5))
U18_GGA(X1, X2, X3, ackermancD_out_gga(X1, X4, X5)) → U19_GGA(X1, X2, X3, ackermanA_in_gga(X1, X5, X3))
U18_GGA(X1, X2, X3, ackermancD_out_gga(X1, X4, X5)) → ACKERMANA_IN_GGA(X1, X5, X3)
ackermancB_in_ga(X1, X2) → U28_ga(X1, X2, ackermancC_in_ga(X1, X2))
ackermancC_in_ga(0, s(s(0))) → ackermancC_out_ga(0, s(s(0)))
ackermancC_in_ga(s(X1), X2) → U29_ga(X1, X2, ackermancB_in_ga(X1, X3))
U29_ga(X1, X2, ackermancB_out_ga(X1, X3)) → U30_ga(X1, X2, ackermancD_in_gga(X1, X3, X2))
ackermancD_in_gga(0, X1, s(X1)) → ackermancD_out_gga(0, X1, s(X1))
ackermancD_in_gga(s(X1), 0, X2) → U31_gga(X1, X2, ackermancC_in_ga(X1, X2))
U31_gga(X1, X2, ackermancC_out_ga(X1, X2)) → ackermancD_out_gga(s(X1), 0, X2)
ackermancD_in_gga(s(X1), s(X2), X3) → U32_gga(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U32_gga(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, X3, ackermancD_in_gga(X1, X4, X3))
U33_gga(X1, X2, X3, ackermancD_out_gga(X1, X4, X3)) → ackermancD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, X2, ackermancD_out_gga(X1, X3, X2)) → ackermancC_out_ga(s(X1), X2)
U28_ga(X1, X2, ackermancC_out_ga(X1, X2)) → ackermancB_out_ga(X1, X2)
ACKERMANB_IN_GA(X1, X2) → ACKERMANC_IN_GA(X1, X2)
ACKERMANC_IN_GA(s(X1), X2) → ACKERMANB_IN_GA(X1, X3)
ACKERMANC_IN_GA(s(X1), X2) → U3_GA(X1, X2, ackermancB_in_ga(X1, X3))
U3_GA(X1, X2, ackermancB_out_ga(X1, X3)) → ACKERMAND_IN_GGA(X1, X3, X2)
ACKERMAND_IN_GGA(s(X1), 0, X2) → ACKERMANC_IN_GA(X1, X2)
ACKERMAND_IN_GGA(s(X1), s(X2), X3) → ACKERMAND_IN_GGA(s(X1), X2, X4)
ACKERMAND_IN_GGA(s(X1), s(X2), X3) → U7_GGA(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U7_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → ACKERMAND_IN_GGA(X1, X4, X3)
ackermancB_in_ga(X1, X2) → U28_ga(X1, X2, ackermancC_in_ga(X1, X2))
ackermancC_in_ga(0, s(s(0))) → ackermancC_out_ga(0, s(s(0)))
ackermancC_in_ga(s(X1), X2) → U29_ga(X1, X2, ackermancB_in_ga(X1, X3))
U29_ga(X1, X2, ackermancB_out_ga(X1, X3)) → U30_ga(X1, X2, ackermancD_in_gga(X1, X3, X2))
ackermancD_in_gga(0, X1, s(X1)) → ackermancD_out_gga(0, X1, s(X1))
ackermancD_in_gga(s(X1), 0, X2) → U31_gga(X1, X2, ackermancC_in_ga(X1, X2))
U31_gga(X1, X2, ackermancC_out_ga(X1, X2)) → ackermancD_out_gga(s(X1), 0, X2)
ackermancD_in_gga(s(X1), s(X2), X3) → U32_gga(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U32_gga(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, X3, ackermancD_in_gga(X1, X4, X3))
U33_gga(X1, X2, X3, ackermancD_out_gga(X1, X4, X3)) → ackermancD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, X2, ackermancD_out_gga(X1, X3, X2)) → ackermancC_out_ga(s(X1), X2)
U28_ga(X1, X2, ackermancC_out_ga(X1, X2)) → ackermancB_out_ga(X1, X2)
ACKERMANB_IN_GA(X1) → ACKERMANC_IN_GA(X1)
ACKERMANC_IN_GA(s(X1)) → ACKERMANB_IN_GA(X1)
ACKERMANC_IN_GA(s(X1)) → U3_GA(X1, ackermancB_in_ga(X1))
U3_GA(X1, ackermancB_out_ga(X1, X3)) → ACKERMAND_IN_GGA(X1, X3)
ACKERMAND_IN_GGA(s(X1), 0) → ACKERMANC_IN_GA(X1)
ACKERMAND_IN_GGA(s(X1), s(X2)) → ACKERMAND_IN_GGA(s(X1), X2)
ACKERMAND_IN_GGA(s(X1), s(X2)) → U7_GGA(X1, X2, ackermancD_in_gga(s(X1), X2))
U7_GGA(X1, X2, ackermancD_out_gga(s(X1), X2, X4)) → ACKERMAND_IN_GGA(X1, X4)
ackermancB_in_ga(X1) → U28_ga(X1, ackermancC_in_ga(X1))
ackermancC_in_ga(0) → ackermancC_out_ga(0, s(s(0)))
ackermancC_in_ga(s(X1)) → U29_ga(X1, ackermancB_in_ga(X1))
U29_ga(X1, ackermancB_out_ga(X1, X3)) → U30_ga(X1, ackermancD_in_gga(X1, X3))
ackermancD_in_gga(0, X1) → ackermancD_out_gga(0, X1, s(X1))
ackermancD_in_gga(s(X1), 0) → U31_gga(X1, ackermancC_in_ga(X1))
U31_gga(X1, ackermancC_out_ga(X1, X2)) → ackermancD_out_gga(s(X1), 0, X2)
ackermancD_in_gga(s(X1), s(X2)) → U32_gga(X1, X2, ackermancD_in_gga(s(X1), X2))
U32_gga(X1, X2, ackermancD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, ackermancD_in_gga(X1, X4))
U33_gga(X1, X2, ackermancD_out_gga(X1, X4, X3)) → ackermancD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, ackermancD_out_gga(X1, X3, X2)) → ackermancC_out_ga(s(X1), X2)
U28_ga(X1, ackermancC_out_ga(X1, X2)) → ackermancB_out_ga(X1, X2)
ackermancB_in_ga(x0)
ackermancC_in_ga(x0)
U29_ga(x0, x1)
ackermancD_in_gga(x0, x1)
U31_gga(x0, x1)
U32_gga(x0, x1, x2)
U33_gga(x0, x1, x2)
U30_ga(x0, x1)
U28_ga(x0, x1)
From the DPs we obtained the following set of size-change graphs:
ACKERMANA_IN_GGA(s(s(X1)), 0, X2) → U10_GGA(X1, X2, ackermancB_in_ga(X1, X3))
U10_GGA(X1, X2, ackermancB_out_ga(X1, X3)) → ACKERMANA_IN_GGA(X1, X3, X2)
ACKERMANA_IN_GGA(s(X1), s(0), X2) → U13_GGA(X1, X2, ackermancC_in_ga(X1, X3))
U13_GGA(X1, X2, ackermancC_out_ga(X1, X3)) → ACKERMANA_IN_GGA(X1, X3, X2)
ACKERMANA_IN_GGA(s(X1), s(s(X2)), X3) → U16_GGA(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U16_GGA(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U18_GGA(X1, X2, X3, ackermancD_in_gga(X1, X4, X5))
U18_GGA(X1, X2, X3, ackermancD_out_gga(X1, X4, X5)) → ACKERMANA_IN_GGA(X1, X5, X3)
ackermancB_in_ga(X1, X2) → U28_ga(X1, X2, ackermancC_in_ga(X1, X2))
ackermancC_in_ga(0, s(s(0))) → ackermancC_out_ga(0, s(s(0)))
ackermancC_in_ga(s(X1), X2) → U29_ga(X1, X2, ackermancB_in_ga(X1, X3))
U29_ga(X1, X2, ackermancB_out_ga(X1, X3)) → U30_ga(X1, X2, ackermancD_in_gga(X1, X3, X2))
ackermancD_in_gga(0, X1, s(X1)) → ackermancD_out_gga(0, X1, s(X1))
ackermancD_in_gga(s(X1), 0, X2) → U31_gga(X1, X2, ackermancC_in_ga(X1, X2))
U31_gga(X1, X2, ackermancC_out_ga(X1, X2)) → ackermancD_out_gga(s(X1), 0, X2)
ackermancD_in_gga(s(X1), s(X2), X3) → U32_gga(X1, X2, X3, ackermancD_in_gga(s(X1), X2, X4))
U32_gga(X1, X2, X3, ackermancD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, X3, ackermancD_in_gga(X1, X4, X3))
U33_gga(X1, X2, X3, ackermancD_out_gga(X1, X4, X3)) → ackermancD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, X2, ackermancD_out_gga(X1, X3, X2)) → ackermancC_out_ga(s(X1), X2)
U28_ga(X1, X2, ackermancC_out_ga(X1, X2)) → ackermancB_out_ga(X1, X2)
ACKERMANA_IN_GGA(s(s(X1)), 0) → U10_GGA(X1, ackermancB_in_ga(X1))
U10_GGA(X1, ackermancB_out_ga(X1, X3)) → ACKERMANA_IN_GGA(X1, X3)
ACKERMANA_IN_GGA(s(X1), s(0)) → U13_GGA(X1, ackermancC_in_ga(X1))
U13_GGA(X1, ackermancC_out_ga(X1, X3)) → ACKERMANA_IN_GGA(X1, X3)
ACKERMANA_IN_GGA(s(X1), s(s(X2))) → U16_GGA(X1, X2, ackermancD_in_gga(s(X1), X2))
U16_GGA(X1, X2, ackermancD_out_gga(s(X1), X2, X4)) → U18_GGA(X1, X2, ackermancD_in_gga(X1, X4))
U18_GGA(X1, X2, ackermancD_out_gga(X1, X4, X5)) → ACKERMANA_IN_GGA(X1, X5)
ackermancB_in_ga(X1) → U28_ga(X1, ackermancC_in_ga(X1))
ackermancC_in_ga(0) → ackermancC_out_ga(0, s(s(0)))
ackermancC_in_ga(s(X1)) → U29_ga(X1, ackermancB_in_ga(X1))
U29_ga(X1, ackermancB_out_ga(X1, X3)) → U30_ga(X1, ackermancD_in_gga(X1, X3))
ackermancD_in_gga(0, X1) → ackermancD_out_gga(0, X1, s(X1))
ackermancD_in_gga(s(X1), 0) → U31_gga(X1, ackermancC_in_ga(X1))
U31_gga(X1, ackermancC_out_ga(X1, X2)) → ackermancD_out_gga(s(X1), 0, X2)
ackermancD_in_gga(s(X1), s(X2)) → U32_gga(X1, X2, ackermancD_in_gga(s(X1), X2))
U32_gga(X1, X2, ackermancD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, ackermancD_in_gga(X1, X4))
U33_gga(X1, X2, ackermancD_out_gga(X1, X4, X3)) → ackermancD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, ackermancD_out_gga(X1, X3, X2)) → ackermancC_out_ga(s(X1), X2)
U28_ga(X1, ackermancC_out_ga(X1, X2)) → ackermancB_out_ga(X1, X2)
ackermancB_in_ga(x0)
ackermancC_in_ga(x0)
U29_ga(x0, x1)
ackermancD_in_gga(x0, x1)
U31_gga(x0, x1)
U32_gga(x0, x1, x2)
U33_gga(x0, x1, x2)
U30_ga(x0, x1)
U28_ga(x0, x1)
From the DPs we obtained the following set of size-change graphs: